home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 2005 October / DPPCPRO1005.ISO / Download / Web Developer / webdeveloper.xpi / chrome / webdeveloper.jar / content / webdeveloper / disable.js < prev    next >
Encoding:
JavaScript  |  2005-03-21  |  12.0 KB  |  371 lines

  1. // Toggles the cache
  2. function webdeveloper_toggleCache(element)
  3. {
  4.     webdeveloper_disablePreference(element, "browser.cache.disk.enable");
  5.     webdeveloper_disablePreference(element, "browser.cache.memory.enable");
  6. }
  7.  
  8. // Toggles cookies
  9. function webdeveloper_toggleCookies(element)
  10. {
  11.     const checked                      = element.getAttribute("checked");
  12.     const preferencesService           = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("");
  13.     const viewCookieInformationElement = document.getElementById("webdeveloper-view-cookie-information-menu");
  14.  
  15.     // Try to get the cookie preference
  16.     try
  17.     {
  18.         preferencesService.getIntPref("network.cookie.cookieBehavior");
  19.  
  20.         var cookieBehavior = 0;
  21.  
  22.         // If disabling cookies
  23.         if(checked)
  24.         {
  25.             cookieBehavior = 2;
  26.         }
  27.  
  28.         preferencesService.setIntPref("network.cookie.cookieBehavior", cookieBehavior);
  29.     }
  30.     catch(exception)
  31.     {
  32.         preferencesService.setBoolPref("network.cookie.enable", !checked);
  33.     }
  34.  
  35.     webdeveloper_configureEquivalentElements(element, "checked", checked);
  36. }
  37.  
  38. // Toggles all the inline styles in elements in the document
  39. function webdeveloper_toggleDocumentInlineStyles(node, disable)
  40. {
  41.     // If the node exists and is an element
  42.     if(node && node.nodeType == 1)
  43.     {
  44.         const childNodes = node.childNodes;
  45.  
  46.         // If disabling styles and the node has a style attribute
  47.         if(disable && node.hasAttribute("style"))
  48.         {
  49.             node.setAttribute("webdeveloper-inline-style", node.getAttribute("style"));
  50.             node.removeAttribute("style");
  51.         }
  52.         else if(!disable && node.hasAttribute("webdeveloper-inline-style"))
  53.         {
  54.             node.setAttribute("style", node.getAttribute("webdeveloper-inline-style"));
  55.             node.removeAttribute("webdeveloper-inline-style");
  56.         }
  57.  
  58.         // Loop through the child nodes
  59.         for(var i = 0; i < childNodes.length; i++)
  60.         {
  61.             webdeveloper_toggleDocumentInlineStyles(childNodes[i], disable);
  62.         }
  63.     }
  64. }
  65.  
  66. // Toggles all the embedded styles on the page
  67. function webdeveloper_toggleEmbeddedStyles(element, applyStyle)
  68. {
  69.     const mainTabBox   = getBrowser().mTabBox;
  70.     const documentList = webdeveloper_getDocuments(getBrowser().browsers[mainTabBox.selectedIndex].contentWindow, new Array());
  71.  
  72.     var disable        = element.getAttribute("checked");
  73.     var pageDocument   = null;
  74.     var styleSheetList = null;
  75.  
  76.     webdeveloper_configureEquivalentElements(element, "checked", disable);
  77.  
  78.     // Loop through the documents
  79.     for(var i = 0; i < documentList.length; i++)
  80.     {
  81.         pageDocument   = documentList[i];
  82.         styleSheetList = pageDocument.getElementsByTagName("style");
  83.  
  84.         // Loop through all the stylesheets
  85.         for(var j = 0; j < styleSheetList.length; j++)
  86.         {
  87.             styleSheetList[j].disabled = disable;
  88.         }
  89.  
  90.     }
  91.  
  92.     // If applying styles
  93.     if(applyStyle)
  94.     {
  95.         // If style sheets are being disabled
  96.         if(disable)
  97.         {
  98.             webdeveloper_addAppliedStyle("webdeveloper-disable-embedded-styles");
  99.         }
  100.         else
  101.         {
  102.             webdeveloper_removeAppliedStyle("webdeveloper-disable-embedded-styles");
  103.         }
  104.     }
  105. }
  106.  
  107. // Toggles image animations
  108. function webdeveloper_toggleImageAnimations(element)
  109. {
  110.     const checked            = element.getAttribute("checked");
  111.     const preferencesService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("");
  112.  
  113.     var imageBehavior = "normal";
  114.  
  115.     // If disabling images
  116.     if(checked)
  117.     {
  118.         imageBehavior = "none";
  119.     }
  120.  
  121.     preferencesService.setCharPref("image.animation_mode", imageBehavior);
  122.  
  123.     webdeveloper_configureEquivalentElements(element, "checked", checked);
  124.     BrowserReloadSkipCache();
  125. }
  126.  
  127. // Toggles images
  128. function webdeveloper_toggleImages(element)
  129. {
  130.     const checked            = element.getAttribute("checked");
  131.     const preferencesService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("");
  132.  
  133.     var imageBehavior = 0;
  134.  
  135.     // If disabling images
  136.     if(checked)
  137.     {
  138.         imageBehavior = 2;
  139.     }
  140.  
  141.     preferencesService.setIntPref("network.image.imageBehavior", imageBehavior);
  142.  
  143.     webdeveloper_configureEquivalentElements(element, "checked", checked);
  144.     BrowserReloadSkipCache();
  145. }
  146.  
  147. // Toggles all the inline styles in elements on the page
  148. function webdeveloper_toggleInlineStyles(element, applyStyle)
  149. {
  150.     const mainTabBox   = getBrowser().mTabBox;
  151.     const documentList = webdeveloper_getDocuments(getBrowser().browsers[mainTabBox.selectedIndex].contentWindow, new Array());
  152.  
  153.     var disable = element.getAttribute("checked");
  154.  
  155.     webdeveloper_configureEquivalentElements(element, "checked", disable);
  156.  
  157.     // Loop through the documents
  158.     for(var i = 0; i < documentList.length; i++)
  159.     {
  160.         webdeveloper_toggleDocumentInlineStyles(documentList[i].documentElement, disable);
  161.     }
  162.  
  163.     // If applying styles
  164.     if(applyStyle)
  165.     {
  166.         // If style sheets are being disabled
  167.         if(disable)
  168.         {
  169.             webdeveloper_addAppliedStyle("webdeveloper-disable-inline-styles");
  170.         }
  171.         else
  172.         {
  173.             webdeveloper_removeAppliedStyle("webdeveloper-disable-inline-styles");
  174.         }
  175.     }
  176. }
  177.  
  178. // Toggles all the linked styles on the page
  179. function webdeveloper_toggleLinkedStyles(element, applyStyle)
  180. {
  181.     const mainTabBox   = getBrowser().mTabBox;
  182.     const documentList = webdeveloper_getDocuments(getBrowser().browsers[mainTabBox.selectedIndex].contentWindow, new Array());
  183.  
  184.     var disable        = element.getAttribute("checked");
  185.     var ownerNode      = null;
  186.     var pageDocument   = null;
  187.     var styleSheet     = null;
  188.     var styleSheetList = null;
  189.  
  190.     webdeveloper_configureEquivalentElements(element, "checked", disable);
  191.  
  192.     // Loop through the documents
  193.     for(var i = 0; i < documentList.length; i++)
  194.     {
  195.         pageDocument   = documentList[i];
  196.         styleSheetList = pageDocument.styleSheets;
  197.  
  198.         // Loop through all the stylesheets
  199.         for(var j = 0; j < styleSheetList.length; j++)
  200.         {
  201.             styleSheet = styleSheetList[j];
  202.             ownerNode  = styleSheet.ownerNode;
  203.  
  204.             // If this style sheet is not embedded, has an owner node and is not an alternate style
  205.             if(styleSheet.href != pageDocument.documentURI && ownerNode && (!ownerNode.hasAttribute("rel") || ownerNode.getAttribute("rel").toLowerCase() != "alternate stylesheet"))
  206.             {
  207.                 styleSheet.disabled = disable;
  208.             }
  209.         }
  210.     }
  211.  
  212.     // If applying styles
  213.     if(applyStyle)
  214.     {
  215.         // If style sheets are being disabled
  216.         if(disable)
  217.         {
  218.             webdeveloper_addAppliedStyle("webdeveloper-disable-linked-styles");
  219.         }
  220.         else
  221.         {
  222.             webdeveloper_removeAppliedStyle("webdeveloper-disable-linked-styles");
  223.         }
  224.     }
  225. }
  226.  
  227. // Toggles Java
  228. function webdeveloper_toggleJava(element)
  229. {
  230.     const checked                = element.getAttribute("checked");
  231.     const openJavaConsoleElement = document.getElementById("webdeveloper-open-java-console-menu");
  232.  
  233.     webdeveloper_disablePreference(element, "security.enable_java");
  234.     webdeveloper_configureEquivalentElements(openJavaConsoleElement, "disabled", checked);
  235.     webdeveloper_disableElement(document.getElementById("webdeveloper-open-java-console-key"), checked);
  236. }
  237.  
  238. // Toggles the page colors
  239. function webdeveloper_togglePageColors(element)
  240. {
  241.     webdeveloper_disablePreference(element, "browser.display.use_document_colors");
  242.     BrowserReloadSkipCache();
  243. }
  244.  
  245. // Toggles referrer logging
  246. function webdeveloper_toggleReferrerLogging(element)
  247. {
  248.     const checked            = element.getAttribute("checked");
  249.     const preferencesService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("");
  250.  
  251.     var sendReferrer = 2;
  252.  
  253.     // If disabling referrer logging
  254.     if(checked)
  255.     {
  256.         sendReferrer = 0;
  257.     }
  258.  
  259.     preferencesService.setIntPref("network.http.sendRefererHeader", sendReferrer);
  260.  
  261.     webdeveloper_configureEquivalentElements(element, "checked", checked);
  262. }
  263.  
  264. // Toggles the styles for the page
  265. function webdeveloper_toggleStyles(element, applyStyle)
  266. {
  267.     const mainTabBox      = getBrowser().mTabBox;
  268.     const contentWindow   = getBrowser().browsers[mainTabBox.selectedIndex].contentWindow;
  269.     const currentDocument = contentWindow.document;
  270.     const documentList    = webdeveloper_getDocuments(contentWindow, new Array());
  271.  
  272.     var disable        = null;
  273.     var ownerNode      = null;
  274.     var pageDocument   = null;
  275.     var styleElement   = null;
  276.     var styleSheet     = null;
  277.     var styleSheetList = null;
  278.  
  279.     // If the element is not set we are coming from a keyboard shortcut
  280.     if(!element)
  281.     {
  282.         element = document.getElementById("webdeveloper-disable-all-styles-menu");
  283.  
  284.         // If the element has a checked attribute
  285.         if(element.getAttribute("checked") == "true")
  286.         {
  287.             element.removeAttribute("checked");
  288.         }
  289.         else
  290.         {
  291.             element.setAttribute("checked", true);
  292.         }
  293.     }
  294.  
  295.     disable = element.getAttribute("checked");
  296.     webdeveloper_configureEquivalentElements(element, "checked", disable);
  297.  
  298.     // Explictly convert the value of disable to a boolean
  299.     if(disable == "true")
  300.     {
  301.         disable = true;
  302.     }
  303.     else
  304.     {
  305.         disable = false;
  306.     }
  307.  
  308.     // Loop through the documents
  309.     for(var i = 0; i < documentList.length; i++)
  310.     {
  311.         pageDocument   = documentList[i];
  312.         styleSheetList = pageDocument.styleSheets;
  313.  
  314.         // Loop through all the stylesheets
  315.         for(var j = 0; j < styleSheetList.length; j++)
  316.         {
  317.             styleSheet = styleSheetList[j];
  318.  
  319.             // If the style sheet is set
  320.             if(styleSheet)
  321.             {
  322.                 ownerNode  = styleSheet.ownerNode;
  323.  
  324.                 // If this style sheet does not have an owner node or the owner node is a processing instruction or is not an alternate style
  325.                 if(!ownerNode || ownerNode.nodeType == 7 || !ownerNode.hasAttribute("rel") || ownerNode.getAttribute("rel").toLowerCase() != "alternate stylesheet")
  326.                 {
  327.                     styleSheet.disabled = disable;
  328.                 }
  329.             }
  330.         }
  331.  
  332.         webdeveloper_toggleDocumentInlineStyles(pageDocument.documentElement, disable);
  333.     }
  334.  
  335.     // If disabling styles
  336.     if(disable)
  337.     {
  338.         webdeveloper_resetMenu(false);
  339.     }
  340.     else
  341.     {
  342.         webdeveloper_updateMenu(currentDocument);
  343.     }
  344.  
  345.     styleElement = document.getElementById("webdeveloper-disable-embedded-styles-menu");
  346.     webdeveloper_configureEquivalentElements(styleElement, "checked", false);
  347.     webdeveloper_configureEquivalentElements(styleElement, "disabled", disable);
  348.  
  349.     styleElement = document.getElementById("webdeveloper-disable-inline-styles-menu");
  350.     webdeveloper_configureEquivalentElements(styleElement, "checked", false);
  351.     webdeveloper_configureEquivalentElements(styleElement, "disabled", disable);
  352.  
  353.     styleElement = document.getElementById("webdeveloper-disable-linked-styles-menu");
  354.     webdeveloper_configureEquivalentElements(styleElement, "checked", false);
  355.     webdeveloper_configureEquivalentElements(styleElement, "disabled", disable);
  356.  
  357.     // If applying styles
  358.     if(applyStyle)
  359.     {
  360.         // If style sheets are being disabled
  361.         if(disable)
  362.         {
  363.             webdeveloper_addAppliedStyle("webdeveloper-disable-all-styles");
  364.         }
  365.         else
  366.         {
  367.             webdeveloper_removeAppliedStyle("webdeveloper-disable-all-styles");
  368.         }
  369.     }
  370. }
  371.